package com.zkthink.ceres.store.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 实体类
 * 店铺提现历史
 * </p>
 *
 * @author chenke
 * @since 2022-04-29
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "CeresStoreWithdrawHisSaveDTO", description = "店铺提现历史")
public class StoreWithdrawHisSaveDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 会员id
     */
    @ApiModelProperty(value = "会员id")
    private Long mid;
    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺id")
    private Long storeId;
    /**
     * 小红心的数目
     */
    @ApiModelProperty(value = "小红心的数目")
    private BigDecimal redHeart;
    /**
     * 提现的金额
     */

    @ApiModelProperty(value = "提现的金额")
    private BigDecimal cash;
    /**
     * 提现的手续费
     */
    @ApiModelProperty(value = "提现的手续费")
    private BigDecimal rate;
    /**
     * 提现类型:0现金提现1:小红心提现
     */
    @ApiModelProperty(value = "提现类型:0现金提现1:小红心提现")
    private Integer withdrawType;
    /**
     * 提现账户
     */

    @ApiModelProperty(value = "提现账户")
    @Length(max = 65535, message = "提现账户长度不能超过65,535")
    private String withdrawAccount;
    /**
     * 真实姓名
     */
    @TableField("name")
    private String name;
    /**
     * 账户类型0:微信1:支付宝
     */
    @ApiModelProperty(value = "账户类型1:微信2:支付宝 ")
    private Integer accountType;
    /**
     * 申请提现时间
     */
    @ApiModelProperty(value = "申请提现时间")
    private LocalDateTime withdrawTime;
    /**
     * 审核状态0:审核中1:审核通过2:不通过
     */
    @ApiModelProperty(value = "审核状态0:审核中1:审核通过2:不通过")
    private Integer supplyStatus;
    /**
     * 审核人id
     */
    @ApiModelProperty(value = "审核人id")
    private Long adjustId;
    /**
     * 审核时间
     */
    @ApiModelProperty(value = "审核时间")
    private LocalDateTime adjustTime;
    /**
     * 提现订单id
     */
    @ApiModelProperty(value = "提现订单id")
    @Length(max = 255, message = "提现订单id长度不能超过255")
    private String withdrawId;
    @ApiModelProperty(value = "描述")
    @Length(max = 65535, message = "长度不能超过65,535")
    private String remark;

}
